package com.cskaoyan.javase.method._2exercise;

/**
 *  定义一个计算器（Calculator）它的功能有
 *  加，减，乘，除
 *  求平方
 *  求a的n次方
 *
 * [修饰符列表] 返回值类型 方法名 (形式参数列表){
 *   //方法体
 * }
 *  总结如何写一个方法?
 *      首先查看需求,找到需要方法去实现的功能
 *      1.方法的修饰符列表默认是public static
 *      2.返回值类型,需要看这个功能需不需要给出返回值
 *      3.方法名,要根据方法的功能写出方法名.方法的功能要和方法名完全能够对应
 *          注: 一个方法应该有专门的功能去实现,一个方法就做一个方法的功能,不要在方法中乱写代码.
 *      4.形参列表.考虑方法需不需要参数
 *      以上把方法的声明写出来,然后再考虑实现.
 *
 * @since 11:39
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Calculator {
    public static void main(String[] args) {
        System.out.println(divide(100, 3));
        System.out.println(power(2, 10));
    }

    // 加
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    // 减
    public static int subtract(int num1, int num2) {
        return num1 - num2;
    }
    // 乘

    public static int multiply(int num1, int num2) {
        return num1 * num2;
    }

    // 除
    public static double divide(double num1, double num2) {
        return num1 / num2;
    }

    // 求平方
    public static int square(int num) {
        return num * num;
    }

    // 求a的n次方,幂运算
    public static int power(int a, int n) {
        /*
            Math.pow(double,double)
            返回值也是double
            表示幂运算
         */
        /*double result = Math.pow(a, n);
        return (int) result;*/

        // 用循环做幂运算
        int result = 1;
        for (int i = 1; i <= n; i++) {
            result *= a;
        }
        return result;
    }
}
